package controllers;

import java.util.List;
import java.util.Vector;

import views.MainPanel;
import business.services.IServicioClases;
import business.services.IServicioClientes;
import business.services.IServicioCuentas;
import business.services.ServiceException;
import business.services.ServicioClases;
import business.services.ServicioClientes;
import business.services.ServicioCuentas;

public class CuentasController implements IErrorObservable {
	private List<IErrorObserver> observers;
	private IServicioCuentas servicioCuentas;
	private IServicioClientes servicioClientes;
	private IServicioClases servicioClases;
	private MainPanel mainPanel;
	
	public CuentasController() {
		this.observers = new Vector<IErrorObserver>();
		servicioClientes = new ServicioClientes();
		servicioClases = new ServicioClases(servicioClientes);
		servicioCuentas = new ServicioCuentas(servicioClientes, servicioClases);

	}
	
	public void imputarCuotasSocios() {
		try {
			servicioCuentas.imputarCuotasSocios();
		} catch (ServiceException e) {
			this.notificarErrorObservers(e.getMessage());
		}
	}
	
	public List<IErrorObserver> getErrorObservers() {
		return this.observers;
	}

	public void agregarErrorObserver(IErrorObserver observer) {
		this.observers.add(observer);
	}

	public void removerErrorObserver(IErrorObserver observer) {
		this.observers.remove(observer);
	}

	public void notificarErrorObservers(String error) {
		for (IErrorObserver observer : this.observers) {
			observer.notificarError(error);
		}
	}
}
